package com.dd.filter;

import java.io.File;
import java.io.FileOutputStream;
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpServlet;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

public class SysListener extends HttpServlet implements ServletContextListener {

	private static final Log logger = LogFactory.getLog(SysListener.class);

	private Timer timer = null;

	// 系统定时任务
	// SmsSend 定时发送短信
	// SmsGet 定时取短信回复
	// Order 订单任务
	// 未及时支付订单处理
	// 1)定位根据预计到达时间.如果当前时间离预计到达时间小于2小时未付款,kill;
	// 2)定礼品根据送达日期 .超过kill
	// 商家未及时确认订单
	// 1)定位根据预计客服付款时间.如果当前时间超过付款时间20分钟算商家取消(不保存到满座信息表);
	// 2)定礼品根据预计客服付款时间.如果当前时间超过付款时间20分钟算商家取消;
	// 用户未及时确认订单处理
	// 1)定位根据预计到达时间.如果当前时间超过到达时间3天自动确认(不给积分)
	// 2)定礼品根据预计送达时间.如果当前时间超过送达时间3天自动确认(不给积分)
	public void contextInitialized(ServletContextEvent sce) {
		try {
			timer = new Timer();
			timer.schedule(new OrderTask(sce.getServletContext()),5000,60000);
//			timer.schedule(new SmsSendTask(sce.getServletContext()),5000,10000);
//			timer.schedule(new SmsGetTask(sce.getServletContext()),5000,35000);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void contextDestroyed(ServletContextEvent sce) {
		timer.cancel();
		// logger.info("[timer]-Timer is Destroyed");
	}
}
